load("@prysm//tools/go:def.bzl", "go_library", "go_test")

go_library(
    name = "go_default_library",
    srcs = [
        "beacon_state.go",
        "doc.go",
        "error.go",
        "getters_attestation.go",
        "getters_block.go",
        "getters_checkpoint.go",
        "getters_consolidation.go",
        "getters_deposit_requests.go",
        "getters_deposits.go",
        "getters_eth1.go",
        "getters_exit.go",
        "getters_misc.go",
        "getters_participation.go",
        "getters_payload_header.go",
        "getters_randao.go",
        "getters_state.go",
        "getters_sync_committee.go",
        "getters_validator.go",
        "getters_withdrawal.go",
        "hasher.go",
        "multi_value_slices.go",
        "proofs.go",
        "readonly_validator.go",
        "setters_attestation.go",
        "setters_block.go",
        "setters_checkpoint.go",
        "setters_churn.go",
        "setters_consolidation.go",
        "setters_deposit_requests.go",
        "setters_deposits.go",
        "setters_eth1.go",
        "setters_misc.go",
        "setters_participation.go",
        "setters_payload_header.go",
        "setters_randao.go",
        "setters_state.go",
        "setters_sync_committee.go",
        "setters_validator.go",
        "setters_withdrawal.go",
        "spec_parameters.go",
        "ssz.go",
        "state_trie.go",
        "types.go",
    ],
    importpath = "github.com/prysmaticlabs/prysm/v5/beacon-chain/state/state-native",
    visibility = ["//visibility:public"],
    deps = [
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/time:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/state/fieldtrie:go_default_library",
        "//beacon-chain/state/state-native/custom-types:go_default_library",
        "//beacon-chain/state/state-native/types:go_default_library",
        "//beacon-chain/state/stateutil:go_default_library",
        "//config/features:go_default_library",
        "//config/fieldparams:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//consensus-types/interfaces:go_default_library",
        "//consensus-types/primitives:go_default_library",
        "//container/multi-value-slice:go_default_library",
        "//container/slice:go_default_library",
        "//container/trie:go_default_library",
        "//crypto/bls:go_default_library",
        "//crypto/hash:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//encoding/ssz:go_default_library",
        "//math:go_default_library",
        "//monitoring/tracing/trace:go_default_library",
        "//proto/engine/v1:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//runtime/version:go_default_library",
        "//time/slots:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_prometheus_client_golang//prometheus:go_default_library",
        "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
        "@com_github_prysmaticlabs_fastssz//:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@org_golang_google_protobuf//proto:go_default_library",
    ],
)

go_test(
    name = "go_default_test",
    srcs = [
        "getters_attestation_test.go",
        "getters_block_test.go",
        "getters_checkpoint_test.go",
        "getters_consolidation_test.go",
        "getters_deposit_requests_test.go",
        "getters_deposits_test.go",
        "getters_exit_test.go",
        "getters_participation_test.go",
        "getters_test.go",
        "getters_validator_test.go",
        "getters_withdrawal_test.go",
        "hasher_test.go",
        "mvslice_fuzz_test.go",
        "proofs_test.go",
        "readonly_validator_test.go",
        "references_test.go",
        "setters_attestation_test.go",
        "setters_churn_test.go",
        "setters_consolidation_test.go",
        "setters_deposit_requests_test.go",
        "setters_deposits_test.go",
        "setters_eth1_test.go",
        "setters_misc_test.go",
        "setters_participation_test.go",
        "setters_payload_header_test.go",
        "setters_validator_test.go",
        "setters_withdrawal_test.go",
        "state_fuzz_test.go",
        "state_test.go",
        "state_trie_test.go",
        "types_test.go",
    ],
    data = glob(["testdata/**"]) + [
        "@consensus_spec_tests_mainnet//:test_data",
    ],
    embed = [":go_default_library"],
    deps = [
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/transition:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/state/state-native/types:go_default_library",
        "//beacon-chain/state/stateutil:go_default_library",
        "//beacon-chain/state/testing:go_default_library",
        "//config/features:go_default_library",
        "//config/fieldparams:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//consensus-types/interfaces:go_default_library",
        "//consensus-types/primitives:go_default_library",
        "//container/trie:go_default_library",
        "//crypto/bls:go_default_library",
        "//crypto/rand:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//proto/engine/v1:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//runtime/interop:go_default_library",
        "//runtime/version:go_default_library",
        "//testing/assert:go_default_library",
        "//testing/require:go_default_library",
        "//testing/util:go_default_library",
        "//time/slots:go_default_library",
        "@com_github_ethereum_go_ethereum//common/hexutil:go_default_library",
        "@com_github_golang_snappy//:go_default_library",
        "@com_github_google_go_cmp//cmp:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@org_golang_google_protobuf//proto:go_default_library",
        "@org_golang_google_protobuf//testing/protocmp:go_default_library",
    ],
)
